package com.robertux.leaderboard.beans.entities;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.Table;


/**
 * The persistent class for the DETALLE_PROGRESO_META database table.
 * 
 */
@Entity
@Table(name="DETALLE_PROGRESO_META")
@NamedQuery(name="DetalleProgresoMeta.findAll", query="SELECT d FROM DetalleProgresoMeta d")
public class DetalleProgresoMeta implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;

	@ManyToOne()
	@JoinColumn(name="GRUPO_PRODUCTO_ID")
	private GrupoProducto grupoProducto;

	@ManyToOne()
	@JoinColumn(name="PROGRESO_ID")
	private ProgresoMeta progreso;

	@Column(name="TOTAL_VENTAS")
	private BigDecimal totalVentas;

	public DetalleProgresoMeta() {
		this.grupoProducto = new GrupoProducto();
		this.progreso = new ProgresoMeta();
		this.totalVentas = BigDecimal.ZERO;
	}
	
	public DetalleProgresoMeta(GrupoProducto grupoProducto,
			ProgresoMeta progreso, BigDecimal totalVentas) {
		super();
		this.grupoProducto = grupoProducto;
		this.progreso = progreso;
		this.totalVentas = totalVentas;
	}

	public int getId() {
		return this.id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public GrupoProducto getGrupoProducto() {
		return this.grupoProducto;
	}

	public void setGrupoProducto(GrupoProducto grupoProducto) {
		this.grupoProducto = grupoProducto;
	}

	public ProgresoMeta getProgreso() {
		return this.progreso;
	}

	public void setProgreso(ProgresoMeta progreso) {
		this.progreso = progreso;
	}

	public BigDecimal getTotalVentas() {
		return this.totalVentas;
	}

	public void setTotalVentas(BigDecimal totalVentas) {
		this.totalVentas = totalVentas;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		DetalleProgresoMeta other = (DetalleProgresoMeta) obj;
		if (id != other.id)
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "DetalleProgresoMeta [id=" + id + ", grupoProducto="
				+ grupoProducto + ", progreso=" + progreso + ", totalVentas="
				+ totalVentas + "]";
	}
}